﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AEBaseCalcCSharp
{
    abstract class BiosphereModification : Structure
    {
        private int currentFertility;
        const int baseCostBiosphereModification = 2000;
        const int baseFertility = 1;
        const int baseEnergyBiosphereModification = -24;
        const string structureNameBiosphereModification = "BiosphereModification";

        public override int baseCost { get { return baseCostBiosphereModification; } }
        public override string structureName { get { return structureNameBiosphereModification; } }
        public override int baseEnergy { get { return baseEnergyBiosphereModification; } }

        public override void incrementLevel(int newLevel)
        {
            this.level = newLevel;
            incrementCost();
            incrementEnergy();
            incrementConstruction();
            incrementArea();
            incrementPopulation();
            incrementFertility();
        }

        protected void incrementFertility()
        {
            currentFertility = baseFertility * level;
        }

        public override int getCurrentFertility()
        {
            return currentFertility;
        }
    }
}
